package com.system.springmvc;

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.context.embedded.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
/**
 * WebMvcConfig
 */
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {

//  @Autowired
//  private SecurityInterceptor interceptor;

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
//    	默认映射：
//    	/** 映射到 /static （或/public、/resources、/META-INF/resources） 
//    	/webjars/** 映射到 classpath:/META-INF/resources/webjars/ 
//    	PS：上面的 static、public、resources 等目录都在 classpath: 下面（如 src/main/resources/static）
//    	同名文件访问优先级：META/resources > resources > static > public

    	//增加自定义资源映射
        registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
        registry.addResourceHandler("/webform/**").addResourceLocations("classpath:/webform/");
    }
    /*
     * 限制文件上传信息
     */
    @Bean 
    public MultipartConfigElement multipartConfigElement() { 
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //// 设置文件大小限制 ,超了，页面会抛出异常信息，这时候就需要进行异常信息的处理了;
        factory.setMaxFileSize("2MB"); //KB,MB
        /// 设置总上传数据总大小
        factory.setMaxRequestSize("10MB"); 
        //Sets the directory location where files will be stored.
        //factory.setLocation("路径地址");
        return factory.createMultipartConfig(); 
    } 
//	@Autowired
//	UserHandlerMethodArgumentResolver currentUserHandlerMethodArgumentResolver;
	
//    @Override
//    public void addViewControllers(ViewControllerRegistry registry) {
//        registry.addViewController("/").setViewName("index");
//        registry.addViewController("/error").setViewName("error");
//    }
//    
//    @Override
//    public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers){
//    	argumentResolvers.add(currentUserHandlerMethodArgumentResolver);
//    }

//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        // 多个拦截器组成一个拦截器链,只有经过DispatcherServlet 的请求，
//		  //才会走拦截器链，我们自定义的Servlet 请求是不会被拦截的
//        // addPathPatterns 用于添加拦截规则
//        // excludePathPatterns 用户排除拦截
//		  //MyInterceptor实现HandlerInterceptor 
//        registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
//    	  registry.addInterceptor(new MyInterceptor()).addPathPatterns("/**");
//        super.addInterceptors(registry);
//    }
}